package main

import (
	"fmt"
	"math"
)

// 定义一个接口
type Shape interface {
	Area() float64
	Perimeter() float64
}

// 定义一个结构体
type Circles struct {
	Radius float64
}

// Circle实现Shape接口
func (c Circles) Area() float64 {
	return math.Pi * c.Radius * c.Radius
}
func (c Circles) Perimeter() float64 {
	return 2 * math.Pi * c.Radius
}

func main() {
	c := Circles{Radius: 5}
	var s Shape = c // 接口变量可以存储实现了接口的类型
	fmt.Println(s.Area())
	fmt.Println(s.Perimeter())
}
